home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Merciful 5
/
Merciful - Disc 5.iso
/
software
/
p
/
pcqpascalv1.2d.lha
/
Include
/
Diskfont
/
DiskFont.i
next >
Wrap
Text File
|
1997-05-07
|
4KB
|
138 lines
{
DiskFont.i for PCQ Pascal
diskfont library definitions
}
{$I "Include:Exec/Nodes.i"}
{$I "Include:Exec/Lists.i"}
{$I "Include:Graphics/Text.i"}
{$I "Include:Diskfont/DiskFontBaseVar.i"}
Const
MAXFONTPATH = 256; { including null terminator }
Type
FontContents = record
fc_FileName : Array [0..MAXFONTPATH-1] of Char;
fc_YSize : Short;
fc_Style : Byte;
fc_Flags : Byte;
end;
FontContentsPtr = ^FontContents;
TFontContents = Record
tfc_FileName : Array[0..MAXFONTPATH-3] of Char;
tfc_TagCount : Short; { including the TAG_DONE tag }
{
* if tfc_TagCount is non-zero, tfc_FileName is overlayed with
* Text Tags starting at: (struct TagItem *)
* &tfc_FileName[MAXFONTPATH-(tfc_TagCount*sizeof(struct TagItem))]
}
tfc_YSize : Short;
tfc_Style,
tfc_Flags : Byte;
END;
TFontContentsPtr =^TFontContents;
Const
FCH_ID = $0f00;
TFCH_ID = $0f02; { FontContentsHeader, THEN TFontContents }
OFCH_ID = $0f03; { FontContentsHeader, then TFontContents,
associated with outline font }
Type
FontContentsHeader = record
fch_FileID : Short; { FCH_ID }
fch_NumEntries : Short; { the number of FontContents elements }
fch_FC : Array [0..0] of FontContents;
{ actual number of elements is NumEntries }
end;
FontContentsHeaderPtr = ^FontContentsHeader;
Const
DFH_ID = $0f80;
MAXFONTNAME = 32; { font name including ".font\0" }
Type
DiskFontHeader = record
{ the following 8 bytes are not actually considered a part of the }
{ DiskFontHeader, but immediately preceed it. The NextSegment is }
{ supplied by the linker/loader, and the ReturnCode is the code }
{ at the beginning of the font in case someone runs it... }
{ ULONG dfh_NextSegment;{ actually a BPTR }
{ ULONG dfh_ReturnCode; { MOVEQ #0,D0 : RTS }
{ here then is the official start of the DiskFontHeader... }
dfh_DF : Node; { node to link disk fonts }
dfh_FileID : Short; { DFH_ID }
dfh_Revision : Short; { the font revision }
dfh_Segment : Integer; { the segment address when loaded }
dfh_Name : Array [0..MAXFONTNAME-1] of Char;
{ the font name (null terminated) }
dfh_TF : TextFont; { loaded TextFont structure }
end;
DiskFontHeaderPtr = ^DiskFontHeader;
Const
AFB_MEMORY = 0;
AFF_MEMORY = 1;
AFB_DISK = 1;
AFF_DISK = 2;
AFB_SCALED = 2;
AFF_SCALED = $0004;
AFB_BITMAP = 3;
AFF_BITMAP = $0008;
AFB_TAGGED = 16; { return TAvailFonts }
AFF_TAGGED = $10000;
Type
AvailFont = record
af_Type : Short; { MEMORY or DISK }
af_Attr : TextAttr; { text attributes for font }
end;
AvailFontPtr = ^AvailFont;
TAvailFonts = Record
taf_Type : Short; { MEMORY, DISK, OR SCALED }
taf_Attr : TTextAttr; { text attributes for font }
END;
TAvailFontsPtr = ^TAvailFonts;
AvailFontsHeader = record
afh_NumEntries : Short; { number of AvailFonts elements }
afh_AF : Array [0..0] of AvailFont;
{ actual number in NumEntries }
end;
AvailFontsHeaderPtr = ^AvailFontsHeader;
FUNCTION AvailFonts(buffer : Address;
bufBytes : Integer; types : Integer) : Integer;
External;
Procedure DisposeFontContents(FCH : FontContentsHeaderPtr);
External; { version 34 }
Function NewFontContents(fontsLock : Address { Lock };
fontName : String) : FontContentsHeaderPtr;
External; { version 34 }
FUNCTION NewScaledDiskFont(srcFont : TextFontPtr; destTextAttr : TTextAttrPtr) : DiskFontHeaderPtr;
External;
Function OpenDiskFont(TA : TextAttrPtr) : TextFontPtr;
External;